﻿/**
 * jQuery EasyUI 1.3
 * 
 * Licensed under the GPL terms
 * To use it on other terms please contact us
 *
 * Copyright(c) 2009-2012 stworthy [ stworthy@gmail.com ] 
 * 
 */
(function ($) {
    function _1(_2) {
        $(_2).hide();
        var _3 = $("<span class=\"searchbox\"></span>").insertAfter(_2);
        var _4 = $("<input type=\"text\" class=\"searchbox-text\">").appendTo(_3);
        $("<span><span class=\"searchbox-button\"></span></span>").appendTo(_3);
        var _5 = $(_2).attr("name");
        if (_5) {
            _4.attr("name", _5);
            $(_2).removeAttr("name").attr("searchboxName", _5);
        }
        return _3;
    };
    function _6(_7, _8) {
        var _9 = $.data(_7, "searchbox").options;
        var sb = $.data(_7, "searchbox").searchbox;
        if (_8) {
            _9.width = _8;
        }
        sb.appendTo("body");
        if (isNaN(_9.width)) {
            _9.width = sb.outerWidth();
        }
        sb._outerWidth(_9.width);
        sb.find("input.searchbox-text")._outerWidth(sb.width() - sb.find("a.searchbox-menu").outerWidth() - sb.find("span.searchbox-button").outerWidth());
        sb.insertAfter(_7);
    };
    function _a(_b) {
        var _c = $.data(_b, "searchbox");
        var _d = _c.options;
        if (_d.menu) {
            _c.menu = $(_d.menu).menu({ onClick: function (_e) {
                _f(_e);
            } 
            });
            var _10 = _c.menu.children("div.menu-item:first");
            _c.menu.children("div.menu-item").each(function () {
                var _11 = $.extend({}, $.parser.parseOptions(this), { selected: ($(this).attr("selected") ? true : undefined) });
                if (_11.selected) {
                    _10 = $(this);
                    return false;
                }
            });
            _10.triggerHandler("click");
        } else {
            _c.searchbox.find("a.searchbox-menu").remove();
            _c.menu = null;
        }
        function _f(_12) {
            _c.searchbox.find("a.searchbox-menu").remove();
            var mb = $("<a class=\"searchbox-menu\" href=\"javascript:void(0)\"></a>").html(_12.text);
            mb.prependTo(_c.searchbox).menubutton({ menu: _c.menu, iconCls: _12.iconCls });
            _c.searchbox.find("input.searchbox-text").attr("name", $(_12.target).attr("name") || _12.text);
            _6(_b);
        };
    };
    function _13(_14) {
        var _15 = $.data(_14, "searchbox");
        var _16 = _15.options;
        var _17 = _15.searchbox.find("input.searchbox-text");
        var _18 = _15.searchbox.find(".searchbox-button");
        _17.unbind(".searchbox").bind("blur.searchbox", function (e) {
            _16.value = $(this).val();
            if (_16.value == "") {
                $(this).val(_16.prompt);
                $(this).addClass("searchbox-prompt");
            } else {
                $(this).removeClass("searchbox-prompt");
            }
        }).bind("focus.searchbox", function (e) {
            if ($(this).val() != _16.value) {
                $(this).val(_16.value);
            }
            $(this).removeClass("searchbox-prompt");
        }).bind("keydown.searchbox", function (e) {
            if (e.keyCode == 13) {
                e.preventDefault();
                var _19 = $.fn.prop ? _17.prop("name") : _17.attr("name");
                _16.value = $(this).val();
                _16.searcher.call(_14, _16.value, _19);
                return false;
            }
        });
        _18.unbind(".searchbox").bind("click.searchbox", function () {
            var _1a = $.fn.prop ? _17.prop("name") : _17.attr("name");
            _16.searcher.call(_14, _16.value, _1a);
        }).bind("mouseenter.searchbox", function () {
            $(this).addClass("searchbox-button-hover");
        }).bind("mouseleave.searchbox", function () {
            $(this).removeClass("searchbox-button-hover");
        });
    };
    function _1b(_1c) {
        var _1d = $.data(_1c, "searchbox");
        var _1e = _1d.options;
        var _1f = _1d.searchbox.find("input.searchbox-text");
        if (_1e.value == "") {
            _1f.val(_1e.prompt);
            _1f.addClass("searchbox-prompt");
        } else {
            _1f.val(_1e.value);
            _1f.removeClass("searchbox-prompt");
        }
    };
    $.fn.searchbox = function (_20, _21) {
        if (typeof _20 == "string") {
            return $.fn.searchbox.methods[_20](this, _21);
        }
        _20 = _20 || {};
        return this.each(function () {
            var _22 = $.data(this, "searchbox");
            if (_22) {
                $.extend(_22.options, _20);
            } else {
                _22 = $.data(this, "searchbox", { options: $.extend({}, $.fn.searchbox.defaults, $.fn.searchbox.parseOptions(this), _20), searchbox: _1(this) });
            }
            _a(this);
            _1b(this);
            _13(this);
            _6(this);
        });
    };
    $.fn.searchbox.methods = { options: function (jq) {
        return $.data(jq[0], "searchbox").options;
    }, menu: function (jq) {
        return $.data(jq[0], "searchbox").menu;
    }, textbox: function (jq) {
        return $.data(jq[0], "searchbox").searchbox.find("input.searchbox-text");
    }, getValue: function (jq) {
        return $.data(jq[0], "searchbox").options.value;
    }, setValue: function (jq, _23) {
        return jq.each(function () {
            $(this).searchbox("options").value = _23;
            $(this).searchbox("textbox").val(_23);
            $(this).searchbox("textbox").blur();
        });
    }, getName: function (jq) {
        return $.data(jq[0], "searchbox").searchbox.find("input.searchbox-text").attr("name");
    }, selectName: function (jq, _24) {
        return jq.each(function () {
            var _25 = $.data(this, "searchbox").menu;
            if (_25) {
                _25.children("div.menu-item[name=\"" + _24 + "\"]").triggerHandler("click");
            }
        });
    }, destroy: function (jq) {
        return jq.each(function () {
            var _26 = $(this).searchbox("menu");
            if (_26) {
                _26.menu("destroy");
            }
            $.data(this, "searchbox").searchbox.remove();
            $(this).remove();
        });
    }, resize: function (jq, _27) {
        return jq.each(function () {
            _6(this, _27);
        });
    } 
    };
    $.fn.searchbox.parseOptions = function (_28) {
        var t = $(_28);
        return $.extend({}, $.parser.parseOptions(_28, ["width", "prompt", "menu"]), { value: t.val(), searcher: (t.attr("searcher") ? eval(t.attr("searcher")) : undefined) });
    };
    $.fn.searchbox.defaults = { width: "auto", prompt: "", value: "", menu: null, searcher: function (_29, _2a) {
    } 
    };
})(jQuery);

